{
struct modem *modem = container_of(obj, struct modem, ubus);
struct blob_attr *tb[__CFG_MAX];
+ char *value;
int ret;
/* prevent mixing previous configure calls */
blobmsg_parse(modem_configure_policy, __CFG_MAX, tb, blob_data(msg), blob_len(msg));
if (tb[CFG_APN]) {
TALLOC_FREE(modem->config.apn);
- modem->config.apn = talloc_strdup(modem, blobmsg_get_string(tb[CFG_APN]));
+ value = blobmsg_get_string(tb[CFG_APN]);
+ if (value && strlen(value))
+ modem->config.apn = talloc_strdup(modem, blobmsg_get_string(tb[CFG_APN]));
}
if (tb[CFG_PIN]) {
TALLOC_FREE(modem->config.pin);
- modem->config.pin = talloc_strdup(modem, blobmsg_get_string(tb[CFG_APN]));
+ value = blobmsg_get_string(tb[CFG_PIN]);
+ if (value && strlen(value))
+ modem->config.pin = talloc_strdup(modem, blobmsg_get_string(tb[CFG_PIN]));
}
if (tb[CFG_ROAMING]) {